﻿using Serilog;
using Serilog.Events;
using Serilog.Formatting.Json;
using Serilog.Sinks.SystemConsole.Themes;

class Program
{
    static void Main()
    {
        // 配置Serilog日志记录器
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()  // 设置最低日志级别为Debug
            // .WriteTo.Console(formatter: new JsonFormatter())   // 将日志输出到控制台，并使用JSON格式
            //.Filter.ByIncludingOnly(logEvent => logEvent.Level >= LogEventLevel.Error)//过滤器来仅输出错误级别以上的日志
           .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
           // .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")//自定义信息
           .WriteTo.File("日志/log.txt")
            .CreateLogger();

        // 记录不同级别的日志消息
        Log.Information("Hello, {Name}!", "Serilog");
        Log.Information("Processed {@Count} records in {Time} ms.", new { Count = 10, Time = 123 });
        Log.Information("This is an information message.");  // 信息级别的日志消息
        Log.Warning("This is a warning message.");  // 警告级别的日志消息
        Log.Error("This is an error message.");  // 错误级别的日志消息
        // 关闭日志记录器并刷新日志消息
        Log.CloseAndFlush();
    }
}
